package com.neusoft.ch3;

/*
 * 课堂笔记：
 * 循环语句中的break和cotinue关键字：
 * break关键字：终止。
 * continue关键字：继续。
 * break:
 *      终止结束break语句所在的循环体，继续执行循环体后面的内容。
 * continue：
 *      终止当前本次循环，直接开始下一次循环。
 *      当执行continue时会跳过continue语句到循环体结束的部分，直接开始下一次循环处理；
 * 总结：
 *    break结束的是整个循环体；
 *    continue结束的是当前本次循环；循环体没有结束，而是开始了下一次新的循环；
 * 
 * 扩展（不作要求）
 *   break可以和位置标签进行搭配，用于终止位置标签所指向的循环体，该循环体不一定就是break所在的循环体；
 *   一般，严格来说，非常不建议使用该种方式。   
 *    
 */
public class TestCh3 {

	public static void main(String[] args) {
		test01();
		System.out.println("=========break=======");
		test011();
		System.out.println("=========continue=======");
		test012();
		System.out.println("=========continue输出奇数=======");
		test013();
		System.out.println("=========beak+位置标签的使用=======");
		test014();
	}

	/**
	 * 打印1-10的数字
	 */
	private static void test01() {
		// 打印数字1-10
		for (int i = 1; i <= 10; i++) {
			System.out.print("   " + i);
		}
		System.out.print("\n");
	}

	/**
	 * 打印1-10的数字:碰到数字5终止（break）
	 */
	private static void test011() {
		// 打印数字1-10
		for (int i = 1; i <= 10; i++) {
			// 碰到5终止
			if (i == 5) {
				break;
			}
			System.out.print("   " + i);
		}
		// 最后输出换行
		System.out.println();
	}

	/**
	 * 打印1-10的数字:碰到数字5终止（continue）
	 */
	private static void test012() {
		// 打印数字1-10
		for (int i = 1; i <= 10; i++) {
			// 碰到5终止
			if (i == 5) {
				continue;
			}
			System.out.print("   " + i);
		}
		// 最后输出换行
		System.out.println();
	}
	/**
	 * 打印1-10之内的奇数数字（continue）
	 */
	private static void test013() {
		// 打印数字1-10
		for (int i = 1; i <= 10; i++) {
			// 碰到5终止
			if (i %2 == 0) {
				continue;
			}
			System.out.print("   " + i);
		}
		// 最后输出换行
		System.out.println();
	}
	
	/**
	 * 双重for循环：（break与位置标签的搭配使用）
	 * 
	 */
	private static void test014() {
		int rows = 10;
		// 打印行数
		// 标识一个位置标签here（按命名规范命名即可）
		here:for (int i = 1; i <= rows; i++) {
			// 打印第i行的所有的列
			// 打印列数
			for (int j = 1; j <= i; j++) {
				// 打印*号
				System.out.print("*");
				// 需求：当j等于5的时候，终止外层的for循环i
				if(j==5) {
					break here;
				}
			}
			// 打印完每行内容，换行
			System.out.println();
		}
	}
}
